MediaGoblinApp
==============

I. General Information
	Project name: MediaGoblin 
	Current devs: Dylan Jeffers, Christopher Webber
	Outline: Android App for MediaGoblin using PyPump  Summer 2015
		- GSOC (Google Summer of Code) project to develop an Android client
            for MediaGoblin
        - Project is a Kivy application, which is written in Python. We chose Kivy
            as it allows us to use the MediaGoblin codebase
        - Uses 100% free software
        - GPLv3 or later license

II. Getting Started
	Requirements:
		A MediaGoblin account:
            - There are many different MediaGoblin instances to choose from
                - We recommend pump.goblinrefuge.com
            - To create your own MediaGoblin instance, follow the guide at:
                https://mediagoblin.readthedocs.org/en/stable/siteadmin/deploying.html
    User Installation Guide:
        Android app is available on F-Droid app store

    Developer Installation Guide:
        The Plan:
            Install a combination of system-wide packages and
            virtualenv packages

        0. Clone the repo
          - cd into a dir of your choice and clone the repo:
            git clone https://notabug.org/SapienTech/MediaGoblinApp
            cd MediaGoblinApp
          - and init the submodules:
            git submodule init && git submodule update

        1. Download the following system-wide dependencies:
            sudo apt-get install -y \
            build-essential \
            mercurial \
            git \
            python2.7 \
            python-setuptools \
            python-dev \
            libsdl-image1.2-dev \
            libsdl-mixer1.2-dev \
            libsdl-ttf2.0-dev \
            libsmpeg-dev \
            libsdl1.2-dev \
            libportmidi-dev \
            libswscale-dev \
            libavformat-dev \
            libavcodec-dev \
            zlib1g-dev \
            python-pip \
            python-virtualenv

        2. Set up a virtual environment (in MediaGoblinApp dir):
            virtualenv env

           And activate it:
            source env/bin/activate

        3. Install dependencies:
            pip install -r requirements.txt

        4. Build the project:
          - In the project directory:
            python setup.py develop

          - This will allow you to run kivy from the computer, to install an android
            apk, continue to step 5.

        5. Compiling the Android apk:
            buildozer android debug

         - To run on phone after compiling:
            buildozer android deploy run logcat


III. Testing
    - As compiling an apk takes time, it is recommended to first test on the computer,
      before debuging an apk.
        - Note, however that some functionality is exclusive to Android


IV. Contributing
    - Contributing to this project is a great opportunity to hone mobile development skills.
    As this project is small, but part of the larger MediaGoblin community,
    contributers have a great opportunity to fully understand and engage with a
    piece of software, while also benefiting from the structure and support of
    an established free software community.

    - If you feel like reaching out to contribute/learn more/just chat, feel 
    free to ping SapienTech on irc.freenode.net in #mediagoblin, or connect
    through email at sapientechnology@openmailbox.com

V. Licenses
    GPLv3 or later

VI. Contact
    Dylan Jeffers: sapientechnology@openmailbox.com
